package com.fulihui.wgj.facade.service.template;

import com.fulihui.common.error.InvokeServiceException;
import com.fulihui.common.result.rpc.BaseResult;
import com.fulihui.common.result.rpc.SimpleResult;
import com.fulihui.wgj.facade.request.template.CalcSendCountRequest;

/**
 * 模板消息发送
 *
 * @author wang_wx
 * @date 2018-07-27
 */
public interface SendTemplateMsgService {

    /**
     * 预计发送人数
     *
     * @param request
     * @return
     * @throws InvokeServiceException
     */
    SimpleResult<Long> countSendUser(CalcSendCountRequest request) throws InvokeServiceException;

    /**
     * 模板消息发送
     *
     * @param request
     * @return
     * @throws InvokeServiceException
     */
    BaseResult sendTemplateMsg(CalcSendCountRequest request) throws InvokeServiceException;

    /**
     * 模板消息发送编辑
     *
     * @param request
     * @return
     * @throws InvokeServiceException
     */
    BaseResult sendTemplateMsgEdit(CalcSendCountRequest request) throws InvokeServiceException;

    /**
     * 模板消息发送for定时
     *
     * @param request
     * @return
     * @throws InvokeServiceException
     */
    BaseResult sendTemplateMsg4Job(CalcSendCountRequest request) throws InvokeServiceException;

    /**
     * 预计发送人数-针对游戏
     *
     * @param request
     * @return
     * @throws InvokeServiceException
     */
    SimpleResult<Long> countSendUser4Game(CalcSendCountRequest request) throws InvokeServiceException;

    /**
     * 模板消息发送-针对游戏
     *
     * @param request
     * @return
     * @throws InvokeServiceException
     */
    BaseResult sendTemplateMsg4Game(CalcSendCountRequest request) throws InvokeServiceException;

    /**
     * 模板消息发送修改-针对游戏
     *
     * @param request
     * @return
     * @throws InvokeServiceException
     */
    BaseResult sendTemplateMsgEdit4Game(CalcSendCountRequest request) throws InvokeServiceException;
}
